3116797f743a54f3ce9121aa82ab669faf0b27ad,org.metaborg.spoofax.core/src/main/java/org/metaborg/spoofax/core/analysis/constraint/ConstraintSingleFileAnalyzer.java,ConstraintSingleFileAnalyzer,analyzeAll,#Map#Map#ISingleFileScopeGraphContext#HybridInterpreter#String#,72
Before Change
merge(solution.getErrors(),
customSolution.map(cs -> cs.getErrors()).orElse(Lists.newArrayList())),
MessageSeverity.ERROR);
final Collection<IMessage> warnings = messages(parseUnit.source(),
merge(solution.getWarnings(),
customSolution.map(cs -> cs.getWarnings()).orElse(Lists.newArrayList())),
MessageSeverity.WARNING);
final Collection<IMessage> notes = messages(parseUnit.source(),
merge(solution.getNotes(),
customSolution.map(cs -> cs.getNotes()).orElse(Lists.newArrayList())),
After Change
Iterables.concat(initialResult.getConstraints(), unitResult.getConstraints());
Function2<String, String, String> fresh =
(resource, base) -> context.unit(resource).fresh().fresh(base);
Solution solution = Solver.solve(initialResult.getConfig(), fresh, constraints);
unit.setSolution(solution);
// final
ITerm finalResultTerm = doAction(strategy, Actions.analyzeFinal(source), context, runtime)
.orElseThrow(() -> new AnalysisException(context, "No final result."));
FinalResult finalResult = FinalResult.matcher().match(finalResultTerm)
.orElseThrow(() -> new MetaborgException("Invalid final results."));
Optional<ITerm> customFinal = doCustomAction(strategy,
Actions.customFinal(source, customInitial.orElse(GenericTerms.EMPTY_TUPLE),
customUnit.map(cu -> GenericTerms.newList(cu)).orElse(GenericTerms.EMPTY_LIST)),
context, runtime);
finalResult = ImmutableFinalResult.of().setCustomResult(customFinal);
unit.setFinalResult(finalResult);
Optional<CustomSolution> customSolution = customFinal.flatMap(CustomSolution.matcher()::match);
customSolution.ifPresent(cs -> unit.setCustomSolution(cs));
// errors
final Collection<IMessage> errors =
merge(messages(solution, MessageKind.ERROR, MessageSeverity.ERROR), customSolution
.map(cs -> messages(cs.getErrors(), MessageSeverity.ERROR)).orElse(Lists.newArrayList()));
final Collection<IMessage> warnings =
merge(messages(solution, MessageKind.WARNING, MessageSeverity.WARNING), customSolution
.map(cs -> messages(cs.getErrors(), MessageSeverity.WARNING)).orElse(Lists.newArrayList()));
final Collection<IMessage> notes =
merge(messages(solution, MessageKind.NOTE, MessageSeverity.NOTE), customSolution
.map(cs -> messages(cs.getErrors(), MessageSeverity.NOTE)).orElse(Lists.newArrayList()));